Development systems are used in conjunction with data processing systems to assist in the "debugging" of both hardware and software. Typical functions of development systems include the insertion of and response to breakpoints, halting the execution of the data processor to examine and perhaps alter the contents of various system registers and the like and tracing the execution of software.
Data processing systems which are constructed as single integrated circuits, or even as a combination of a few such integrated circuits, present increasingly difficult problems in the design of development systems. As the complexity of the data processor increases, more and more functionality is incorporated onto a single integrated circuit and less access to internal buses, registers and the like is available to development systems.
Prior art integrated circuit data processing systems are known in which a special operating mode is available for debugging and/or emulation purposes. In the special operating mode, the system executes normal instructions as in the normal mode, but fetches the instructions to be executed from a location external to the integrated circuit. In all such systems, one or more of the "system resources" which are utilized by the system in its normal mode of operation (e.g. a communication port) are appropriated for communication with the development system during the special operating mode.
Other development support features which appear in prior art integrated circuit data processing systems include the ability to halt the processor and read certain internal registers and the ability to operate a separate, specially-provided state machine on the same integrated circuit to perform certain debugging functions.
All of the prior art data processing systems with development support features have one or more disadvantages. For instance, the appropriation of system resources for use in the debug mode prevents those resources from being used in their normal fashion, thus requiring extra peripheral circuitry to emulate those functions. The provision of an extra, on-chip debugging machine requires significant extra area on the integrated circuit and is, therefore, suitable only for use on limited numbers of special purpose, debugging-type data processors.